package com.ruoyi.usermanage.service.impl;

import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.usermanage.mapper.RiderMapper;
import com.ruoyi.usermanage.domain.Rider;
import com.ruoyi.usermanage.service.IRiderService;

/**
 * 骑手信息Service业务层处理
 * 
 * @author atzxc
 * @date 2024-04-13
 */
@Service
public class RiderServiceImpl implements IRiderService 
{
    @Autowired
    private RiderMapper riderMapper;

    /**
     * 用户认证字段填充
     *
     * 如果通过用户ID获取到了骑手信息
     *      说明用户已经提交了认证，则会有三种状态：审核中，已认证（审核通过），未认证（审核未通过）
     * 如果查询到的结果为空
     *      说明用户没有提交认证信息，则为未认证
     * @param userId 用户ID
     * @return
     */
    @Override
    public Rider selectRiderByUserId(Long userId) {
        LambdaQueryWrapper<Rider> queryWrap = new LambdaQueryWrapper<>();
        queryWrap.eq(Rider::getUserId, userId);
        Rider rider = riderMapper.selectOne(queryWrap);

        return rider;
    }

    /**
     * 查询骑手信息
     * 
     * @param riderId 骑手信息主键
     * @return 骑手信息
     */
    @Override
    public Rider selectRiderByRiderId(Long riderId)
    {
        return riderMapper.selectRiderByRiderId(riderId);
    }

    /**
     * 查询骑手信息列表
     * 
     * @param rider 骑手信息
     * @return 骑手信息
     */
    @Override
    public List<Rider> selectRiderList(Rider rider)
    {
        return riderMapper.selectRiderList(rider);
    }

    /**
     * 新增骑手信息
     * 
     * @param rider 骑手信息
     * @return 结果
     */
    @Override
    public int insertRider(Rider rider)
    {
        return riderMapper.insertRider(rider);
    }

    /**
     * 修改骑手信息
     * 
     * @param rider 骑手信息
     * @return 结果
     */
    @Override
    public int updateRider(Rider rider)
    {
        System.out.println("获取到的rider信息为："+rider);
        if(rider.getAuthStatus().equals("已认证")){
            System.out.println("用户已认证");
            return 0;//用户已经认证
        }
        //修改用户状态为已认证
        UpdateWrapper<Rider> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("rider_id", rider.getRiderId()); // 设置条件
        updateWrapper.set("auth_status", "已认证"); // 设置要更新的字段和新值
        int update = riderMapper.update(null, updateWrapper);

        return update;
//        return riderMapper.updateRider(rider);
    }

    /**
     * 批量删除骑手信息
     * 
     * @param riderIds 需要删除的骑手信息主键
     * @return 结果
     */
    @Override
    public int deleteRiderByRiderIds(Long[] riderIds)
    {
        return riderMapper.deleteRiderByRiderIds(riderIds);
    }

    /**
     * 删除骑手信息信息 - 界面的删除功能设置为拒绝功能
     * 
     * @param riderId 骑手信息主键
     * @return 结果
     */
    @Override
    public int deleteRiderByRiderId(Long riderId)
    {
        System.out.println("获取到的rider信息为："+riderId);

        //修改用户状态为已认证
        UpdateWrapper<Rider> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("rider_id", riderId); // 设置条件
        updateWrapper.set("auth_status", "审核失败"); // 设置要更新的字段和新值
        int update = riderMapper.update(null, updateWrapper);

        return update;


//        return riderMapper.deleteRiderByRiderId(riderId);
    }
}
